package com.soul.model.mongo;

import com.soul.model.eums.CommentType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.bson.types.ObjectId;
import org.springframework.data.mongodb.core.mapping.Document;

import java.util.List;

/**
 * 动态实体对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Document(collection = "movement")
public class Movement implements java.io.Serializable {
    /**
     *  主键id
     */
    private ObjectId id;
    /**
     *  Long类型，用于推荐系统的模型(自动增长)
     */
    private Long pid;
    /**
     *  发布时间
     */
    private Long created;
    /**
     *  动态发布者id
     */
    private Long userId;
    /**
     *  文字
     */
    private String textContent;
    /**
     *  媒体数据，图片或小视频 url
     */
    private List<String> medias;
    /**
     *  经度
     */
    private String longitude;
    /**
     *  纬度
     */
    private String latitude;
    /**
     *  位置名称
     */
    private String locationName;
    /**
     *  状态 0：未审（默认），1：通过，2：驳回
     */
    private Integer state = 0;

    /**
     *  点赞数
     */
    private Integer likeCount = 0;
    /**
     *  评论数
     */
    private Integer commentCount = 0;
    /**
     *  喜欢数
     */
    private Integer loveCount = 0;

    /**
     *  根据评论类型，获取对应的互动数量
     * @param commentType 评论类型
     * @return Integer
     */
    public Integer statisCount(Integer commentType) {
        if (commentType == CommentType.LIKE.getType()) {
            return this.likeCount;
        } else if (commentType == CommentType.COMMENT.getType()) {
            return this.commentCount;
        } else {
            return loveCount;
        }
    }
}